let CompressionPlugin = require('compression-webpack-plugin');
// 打包后分析图
// const BundleAnalyzerPlugin = require('webpack-bundle-analyzer').BundleAnalyzerPlugin
// pwa 插件
// const WorkboxPlugin = require('workbox-webpack-plugin');

// vue.config.js 配置说明
//官方vue.config.js 参考文档 https://cli.vuejs.org/zh/config/#css-loaderoptions
// 这里只列一部分，具体配置参考文档
module.exports = {
	// 部署生产环境和开发环境下的URL。
	// 默认情况下，Vue CLI 会假设你的应用是被部署在一个域名的根路径上
	// 例如 https://www.ruoyi.vip/。如果应用被部署在一个子路径上，你就需要用这个选项指定这个子路径。例如，如果你的应用被部署在 https://www.ruoyi.vip/admin/，则设置 baseUrl 为 /admin/。
	publicPath: process.env.NODE_ENV === "production" ? "/" : "/",
	// 在npm run build 或 yarn build 时 ，生成文件的目录名称（要和baseUrl的生产环境路径一致）（默认dist）
	outputDir: "dist",
	// 用于放置生成的静态资源 (js、css、img、fonts) 的；（项目打包之后，静态资源会放在这个文件夹下）
	assetsDir: "assets",
	indexPath: "index.html",
	// 关闭文件 hash 名
	filenameHashing: false,
	// 是否开启eslint保存检测，有效值：ture | false | 'error'
	lintOnSave: false,
	runtimeCompiler: false,
	// 如果你不需要生产环境的 source map，可以将其设置为 false 以加速生产环境构建。
	productionSourceMap: false,
	// configureWebpack: config => {
	// 	config.plugins.push(
	// 		// gzip 压缩配置
	// 		new CompressionPlugin({
	// 			filename: '[path][name].gz',
	// 			test: /\.(js|css)$/i,
	// 			threshold: 10240 * 0.5,
	// 			minRatio: 0.8
	// 		}),
	// 		// 资源包的交互式可视化树形分析图
	// 		// new BundleAnalyzerPlugin(),
	// 	);
	// },
	configureWebpack: {
		plugins: [
			// gzip 压缩配置
			new CompressionPlugin({
				filename: '[path][name].gz',
				test: /\.(js|css)$/i,
				threshold: 10240 * 0.5,
				minRatio: 0.8
			}),

			// 资源包的交互式可视化树形分析图
			// new BundleAnalyzerPlugin(),

			// new WorkboxPlugin.GenerateSW({
			// 	// 这些选项帮助快速启用 ServiceWorkers
			// 	// 不允许遗留任何“旧的” ServiceWorkers
			// 	clientsClaim: true,
			// 	skipWaiting: true,
			// }),
		],
	},


	devServer: {
		host: "0.0.0.0",
		port: 8081, // 端口号
		https: false,
		open: true, //配置自动启动浏览器

		overlay: {
			warnings: false,
			errors: false
		},

		// 配置多个代理
		// proxy: {
		// 	"/api": {
		// 		target: "http://localhost:3000", // 本地模拟数据服务器
		// 		changeOrigin: true,
		// 		pathRewrite: {
		// 			"^/api": "" // 去掉接口地址中的api字符串
		// 		}
		// 	},
		// 	"/foo": {
		// 		target: "http://localhost:8080", // 本地模拟数据服务器
		// 		changeOrigin: true,
		// 		pathRewrite: {
		// 			"^/foo": "" // 去掉接口地址中的foo字符串
		// 		}
		// 	}
		// }
	},

	css: {
		loaderOptions: {
			css: {},
			// 全局使用的一些scss样式
			sass: {
				prependData: `@import "@/index.scss";`
			}
		}
	},
};